package com.example.demo01.adapter

import android.annotation.SuppressLint
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.ImageView
import android.widget.TextView
import com.example.demo01.R
import com.example.demo01.baseAdapterActivity

class CityAdapter(activity: baseAdapterActivity) : BaseAdapter() {

    //0.准备城市数据
    data class CityData(val icon: Int, val name: String, val intro: String)

    //1.创建数据源
    private val cityList = listOf(
        CityData(R.drawable.bj, "北京", "中国首都，历史悠久，政治文化中心，古韵今风交融。"),
        CityData(R.drawable.bj, "上海", "中国东部国际大都市，金融中心，多元文化汇聚。"),
        CityData(R.drawable.bj, "广州", "中国南部沿海城市，经济发达，文化多元。"),
        CityData(R.drawable.bj, "深圳", "中国南部科技创新中心，现代化城市。"),
        CityData(R.drawable.bj, "杭州", "中国东南部历史文化名城，风景秀丽。"),
        CityData(R.drawable.bj, "南京", "中国东部历史文化名城，教育科研中心。"),
    )

    override fun getCount(): Int {
        return cityList.size
    }

    override fun getItem(position: Int): Any {
        return cityList[position]
    }

    override fun getItemId(position: Int): Long {
        return position.toLong()
    }

    //限制Lint的代码检查
    //没有用ViewHolder进行优化
    @SuppressLint("ViewHolder")
    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        //获取当前位置的城市数据
        val cityData = cityList[position]
        //创建或服用视图布局
        return View.inflate(parent?.context, R.layout.item_icon, null)
            .apply {
                //设置图标
                findViewById<ImageView>(R.id.cityIcon).setImageResource(cityData.icon)
                //设置名称
                findViewById<TextView>(R.id.cityText).text = cityData.name
                //设置简介
                findViewById<TextView>(R.id.cityIntro).text = cityData.intro
            }
    }
}

